#pragma once

#define _USE_MATH_DEFINES

#include <math.h>
#include <stdio.h>
#include "Kinematics.h"
#include <vector>
#include <windows.h>
#include "Emg.h"

extern "C" {
    #include "extApi.h"
}

class Arm
{
private:
	Kinematics k;
	int baseJoint;			// Gestore base joint
    int shoulderJoint;		// Gestore shoulder joint
    int elbowJoint;			// Gestore elbow joint
	float teta1, teta2, teta3;
	float delta;
	int clientID;
	int error;
	float speed;
	float force;
    
public:
	Arm(int clientID, int baseJoint, int shoulderJoint, int elbowJoint);
	~Arm(void);
	void goToRestPosition();
	void goToPoint(Point point);
	void followPath(std::vector<Point> path);
	void move(int val, float degree);
	void Arm::setSpeedForce(float speed, float force);
	
};